package com.jprocms.module.cms.dal.dataobject.guestbook;

import com.jpro.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jprocms.module.cms.dal.dataobject.site.SiteDO;
import com.jprocms.module.cms.enums.EnumIntCommonStatus;
import lombok.*;

import java.util.Date;

/**
 * 留言板 DO
 *
 * @author jprocms
 */
@TableName("cms_guestbook")
@KeySequence("cms_guestbook_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GuestbookDO extends TenantBaseDO {

    /**
     * ID
     */
    @TableId
    private Long id;
    /**
     * 站点ID
     */
    private Long siteId;
    /**
     * 站点对象
     */
    private SiteDO site;
    /**
     * 回复用户
     */
    private Long replyUserId;
    /**
     * 类型(数据字典cms_guestbook_type值)
     */
    private Integer guestbookType;
    /**
     * 留言标题
     */
    private String title;
    /**
     * 留言内容
     */
    private String msgText;
    /**
     * 回复内容
     */
    private String replyText;
    /**
     * 回复日期
     */
    private Date replyDate;
    /**
     * 联系人
     */
    private String contactUser;
    /**
     * 昵称
     */
    private String nickname;
    /**
     * 手机号
     */
    private String msgPhone;
    /**
     * 电子邮箱
     */
    private String msgEmail;
    /**
     * 联系地址
     */
    private String msgAddress;
    /**
     * IP地址
     */
    private String msgIp;
    /**
     * 是否公开
     */
    private Integer isOpen;
    /**
     * 是否回复
     */
    private Integer isReplied;
    /**
     * 是否推荐
     */
    private Integer recommended;
    /**
     * 状态(0:已审核,1:未审核,2:已屏蔽)
     */
    private Integer status;
    /**
     * 创建人ID
     */
    private Long userId;
    /**
     * 创建人用户名
     */
    private String username;
    /**
     * 回复人用户名
     */
    private String replyUserName;

    public boolean getHasReplied() {
        return EnumIntCommonStatus.OPEN.getStatus().equals(getIsReplied());
    }

    public boolean getHasOpen() {
        return EnumIntCommonStatus.OPEN.getStatus().equals(getIsOpen());
    }

    public boolean getHasRecommended() {
        return EnumIntCommonStatus.OPEN.getStatus().equals(getRecommended());
    }

}
